#pragma once



namespace xzy
{
	template<class T, typename Container=vector<T>>
	class stack
	{
	public:
		void push(T val)
		{
			_con.push_back(val);
		}

		void pop()
		{
			_con.pop_back();
		}

		T& top()
		{
			return _con[_con.size() - 1];
		}

		int size()
		{
			return _con.size();
		}

		bool empty()
		{
			return _con.empty();
		}

	
	private:
		Container _con;
	};

	void test01()
	{
		xzy::stack<int> s1;

		s1.push(1);
		s1.push(2);
		s1.push(3);
		s1.push(4);

		while (!s1.empty())
		{
			cout << s1.top() << " ";
			s1.pop();
		}
	}

}
